Intelligent information dissemination

ABSTRACT

The invention is suitable for any kind of distributed networks having different data rates on different connections and a centralized computer system wherein the data to distribute is created. The central system comprises one or more supersets of data that is to be distributed to client computers by extracting subsets of data from the superset/s of data. Thereafter the subsets of data are distributed to selected groups of clients based on information about the network architecture. In this way an efficient way of distributing data is executed and no duplicated data is distributed. Preferably the subsets are distributed to clients based on a counter performance or a data rate of a client&#39;s connection to the central computer system.

FIELD OF THE INVENTION

The present invention relates to distribution of data in computersystems. In particular it relates to information dissemination in highperformance trading systems.

BACKGROUND OF THE INVENTION

Today it is very common that information is sent over computer networks.The amount of information being sent is rapidly increasing due to theadvances in technology, making it possible to send and handle moreinformation at higher speed compared to before. Furthermore, newapplications demands a higher amount of information compared to before.Even further, the importance of information has open up a new field ofbusiness wherein information is sold.

An example of computer systems wherein information dissemination is oneof the most essential parts are electronic trading systems.

Electronic trading of securities, derivatives, commodities and otherfinancial instruments results in large amount of information which hasto be distributed to users that needs the information for making tradedecisions, statistical calculations and other assessments. Furthermorethe users connected to such a centralised trading system want to havethe information as soon as possible. In these cases it may not be enoughto only boost the performance in the central system by for exampleupdating the hardware, in order to get rid of a bottleneck or otherlatency problem in the system. Usually these bottlenecks end up at theuser side anyway, since the users may have limited possibilities toupdate their connection to the central system.

Thus, this type of central system has to generate and distribute a lotof data to many different users not only on continous basis but also atspecific times and occations during a trading day, and it has to be donein an efficient way.

An example of a system for providing electronic information is describedin US 2005/0273421. This document describes a different system whereinthe trading information and mulitiple types of electronic information issent in the same data stream. Providing electronic trading informationand electronic information on the same data stream significantlyincreases the computations required on a target device and by serversbeing used by electronic trading providers to separate the information.The system disclosed in us 2005/0273421 solves this problem by splittingthe first data stream into plural second data streams that can beselectively requested, displayed and used by a user. Each of the pluralsecond data streams includes one or more of the plural different typesof electronic trading information from the first data stream. Therebyallowing an individual target device to selectively request, receive anduse the one or more of the plural types of electronic tradinginformation in the second data stream faster than using the sameelectronic trading information from the first data stream.

However, this type of filtering is often much to rough since auser/client is most likely interested in other data streams too. Thusthe above described system has drawbacks, especially in environmentshaving limited bandwidth connection, since it splitts the informationbased on the type of electronic information.

Hence the above system is useless in networks where the data rates ofthe connections for users is limited and varies between different users.

Some trading system has other functionalities for distributinginformation. However, the problem for these solutions is that theyrequire the system to generate and send duplicated information. Thesesolutions may for example generate one message flow for a user A (with agreat connection) that contains the entire depth and one message flowfor a user B (with a poor connection) that contains a limited picture ofthe market (top X levels). The two messages will therefore containduplicated information for the top X levels. This will result in extraload on both the central systems performance and the traffic on thecentral and peripheral network.

Another problem with electronic information systems is that usuallythere is a central processor/s that aggregates the information anddistributes it. Since the processor has to use time on aggregating andspreading duplicated information there will be less time for other taskssuch as receiving information and thus bottlenecks may occur in otherparts of the system.

Another problem with the prior art systems is that they do not considercounter performances provided by customers when distributing data. Thussome customers may expericence an unfair treatment.

BRIEF DESCRIPTION OF THE INVENTION

Thus it is an object of the present invention to provide a solution fordisseminating data in a more efficient way.

It is another object of the present invention to provide a solution forsending out data to users having different data rate of their dataconnections.

It is another object of the present invention to provide a solution forsending out data in a bandwidth efficient way.

It is another object of the present invention to provide a solution forsending out data without the need of duplicating the data.

It is another object of the present invention to consider customercounter performances when sending out data.

According to a first aspect of the invention the above and other objectsare achieved by a computer system for sending data sets to a pluralityof clients via a network, the computer system comprising:

-   -   a memory comprising a superset of sorted data elements,    -   an extractor associated with the memory for extracting, from the        superset of sorted data, a first subset of data elements and a        second subset of data elements, the second subset being        different from the first subset,    -   a selector associated with the memory for selecting a first and        a second group of clients, the second group of clients being a        subset of the first group of clients, and    -   a communicator associated with the extractor and selector, for        sending the first subset to the first group of selected clients,        and for sending the second subset to the second group of        selected clients.

The above computer system has the advantage that it provides a solutionthat makes it possible to disseminate data in a more efficient way. Thesystem makes it possible to send data using less bandwidth (data rate)and performance in the computer system since duplications of messagesare preferably not extracted or sent.

The devices in the system are connected to each other by interfaces.There are two types of interfaces; hardware interfaces and softwareinterfaces.

Hardware interfaces are plugs, sockets, cables and electrical signalstraveling through them. Examples are USB, FireWire, Ethernet, ATA/IDE,SCSI, PCI and so forth.

Software interfaces (programming interfaces) are the languages, codesand messages that programs use to communicate with each other and to thehardware. Examples are the Windows, Mac and Linux operating systems,SMTP e-mail, IP network protocols and the software drivers that activatethe peripheral devices.

Both types of interfaces are needed in order to get the internal andexternal devices in a computer system/network to communicate with eachother.

The term data element may be referred to as a named unit of data that,in some contexts, is considered indivisible and in other contexts mayconsist of data items. In this document the data element can either beconsidered indivisible or it may consists of data items. Preferably thedata elements in this document are sorted according to ranking rules.For example the data elements could be sorted by ranking rules such as:price, time, price and time, traders before market makers, invertedprice or sorted by volume and so forth, or any combination of thementioned ranking rules.

The superset may comprise a number of data elements that are to bedistributed to a plurality of clients. Preferably the superset of dataelements is stored in a memory such as in the primary memory e.g. thecash memory, RAM, DRAM and so forth, or in a secondary memory such ashard disk, USB memory or the alike. However since the primary memoriesare much faster compared to the secondary memories the primary memoriesare better suited for the task.

The data elements may comprise data relating to orders in an order book.An order is typically an instruction issued by a client. Usually theorder is a buy or a sell order for a certain or a plurality of financialinstruments. However there exist many different types of orders,therefore in this document orders are not only limited to buy or sellorders.

Example of preferred content of a data element is at least one of thefollowing data: trader identity, series, bid or ask, price, quantity,account or client. The data element may also include other fields suchas free text field and so forth.

The subsets may comprise extracted parts of the superset of data.Preferably the subsets do not overlap each other with regard to dataelements. The superset can therefore be represented by a number ofsubsets.

How many data elements each subset should comprise may be chosen by asystem administrator at the central computer system. For example thesubset representing the first part of the superset may comprise fivelevels of data elements, the subset representing the second part of thesuperset may comprise the following ten levels of data elements and thesubset representing the third part of the superset may comprise theremaining data elements in the superset. This is just an example of oneembodiment, in other embodiments more subsets comprising less dataelements may be used in order to represent the superset, or less subsetscomprising more data elements.

In a further embodiment of the invention it is possible for a client tosubscribe to subsets comprising a number of data elements chosen by theclient. Hence it would be possible to tailor the size of the subsets toindividual customer needs. The size and number of subsets could also bebased on a counter performance of a customer, such as payment, number oftrades and so forth. More examples are mentioned below in the text.

The selector in the computer system preferably selects a group ofclients based on at least one of the following:

-   -   a data rate of a client's connection to the network,    -   a subscription associated to a client.

In this way the dissemination of data can be done in anintelligent/selective way since the computer system is able to detect adata rate on a connection to a client. This may be done by measuring thedata rate on the data connection or by information received from theclient, or by information from a message bus and so forth. Thus theselector may select a group of clients based on a combination of datarate and subscription or based on one of them alone. In anothersituation the selector may select a group of clients based on aninfrastructure load.

The input regarding data rate or “infrastructure load” may be obtainedby measuring the data rate on the data connection, processor load at thecentral system, or by information related to an application programreceived from a client computer, or by information from a bus such as anintelligent message bus with ability to measure current bandwidthsituation at different locations by use of network surveillance tools.Hence the infrastructure load may be related to any activity in themarket on an electronic exchange.

Furthermore, it may also be possible for a client to providechange-levels to the central system regarding the data rate on theconnection. Thus if the measured data rate on a connection exceeds anupper change-level the connection is busy and less information can besent via the connection. If the measured data rate on the connectionfalls below a lower change-level the connection is not busy and moreinformation can be sent. By providing this functionality the system canalways make sure that a certain client receives the best service ofinformation based on the data rate.

It is also possible for the central system to control its informationdissemination based on the above so that orders sent from the client isnot prevented from entering the central system. Thus if the measureddata rate on a connection to a client is high the central system maydecide to wait or cancel some of the information that will be sent tothe client. By providing this functionality the system can always makesure that a certain client's orders/request into the central system willarrive faster since the connection is not busy with other informationsent from the exchange.

Preferably the superset of sorted data elements comprises data relatingto at least one of the following data:

-   -   market by order data,    -   market by level data/market by price data.

However, data in any sorted list may be used in relation to the presentinvention and not only the data mentioned above. The above may be usedwhere it is hard for an external application to sort the incoming data.By sending the data already sorted it speeds up the processing of thereceived data for a client computer.

Furthermore the data elements in the subsets of data comprises at leastone of the following:

-   -   data structured as delta-changes of at least a part of the data        elements of at least a part of the superset,    -   data structured as the data elements of at least a part of the        superset.

By sending the delta-changes valuable bandwidth can be saved. If onlyone part of a data element in the superset has changed it may be betterto only send the delta change of that part in order to update the dataset at the client computer. However in other situations it may be moreefficient to send one or more data elements to replace obsolete dataelements at the client. In these cases a snapshot of the superset ofdata can be sent and the amount of bandwidth to be used becomes easierto calculate and predict.

By sending the changes using delta changes it is possible to keep a listat a client computer updated in real time without the need of providingthe whole list each time. Furthermore little bandwidth may be used eachtime for each message. However logic is necessary at the client computersince the client has to be able to perform implicit actions/calculationson the data received. Preferably used for long lists with fewchanges/updates.

Sending the changes by snapshots makes it is easier for a clientcomputer since it is not necessary for the client computer to apply anylogic on the data received. The client computer only replaces the oldmessage with the new message and no further implicit calculation/actionis usually necessary. Furthermore it is possible to limit the maximumbandwidth by hold-back timers, however more bandwidth is necessary foreach message. Preferably used for short lists with many updates/changes.

The memory mentioned above may further comprise an area, accessible bythe selector for storing subscriptions associated with clients. Byhaving this feature it becomes easier for the selector to select groupsof clients since the subscription may comprise information such as:customer needs, the connections data rate, number of trades, theclient's turnover, client status such as market maker and so forth.

The subscription associated with a client is preferably based on atleast one of the following:

-   -   the data rate of the connection to the client,    -   a counter performance from the client,    -   client rights.

Since clients usually have to pay for the subscriptions of information,the service or quality level of the subscriptions varies. For examplethe more a client pays the more information the client can obtain. Thusas mentioned above the subscription may be associated with a clientbased on the connection the client has. The client will get asubscription suitable for the data rate on the connection. The reasonfor this is that the client may be restricted by the connection so thatthe client can only receive a certain amount of data. However thesubscription may also be based on a counter performance from the client.In this case the connection to the client does normally not constitute abottleneck with regards to data-rate. Thus depending on the counterperformance the subscription associated to the client may change.Example of counter performances can be: payments, or turnover at theclients account, liquidity provided by the client, number of trades theclient has done, data received from the client and so forth. Hence, themore the client trades he will be upgraded to a subscription with abetter service or quality.

The clients may be associated with specific rights, “client rights”. Forexample a market maker may have some privileges/rights compared to otherclients. Thus some information could be associated with specific rightsand thereby only sent to the clients having that right/privilege.

The data rate of the connection to the client can be measured in manydifferent ways. A few examples (as mentioned earlier) are; by measuringthe data rate on the connection and/or by information provided by theclient and/or information provided by a data message bus usingsurveillance tools known to the person skilled in the art.

The extractor preferably extracts a subset of data elements from thesuperset of sorted data elements upon at least one of the followingevents:

-   -   a change in the superset,    -   at certain time intervals decided by a holdback timer,        and by use of the communicator, sending the subsets to selected        group of clients.

When to extract and/or send a subset may be chosen depending on thesituation. If changes in the superset do not occur so often it may bemore efficient to extract data elements from the superset upon a changein the superset. Another solution is to extract data elements at certaintime intervals decided by a holdback timer. In these cases it is easierto predict bandwidth utilization in the system.

Furthermore data elements may be extracted by a combination of the twoabove. For example, as a default, data elements could be extracted atcertain time intervals but if no change in the superset occurs there isno need to send any information. Thus the systems checks if any changehas occurred and if no change has occurred in the superset no dataelements are extracted or sent not even at certain time intervals. Notuntil a change is detected by the system, then the system starts sendingdata elements at certain time intervals until no changes in the supersetis detected again. The system waits until a change occurs and thenstarts sending data elements again.

Therefore, the computer system may furthermore comprise a comparatorassociated with the memory, for detecting at least one location of achange in the superset of sorted data elements, and based on thelocation sending a subset associated with the location to clientssubscribing for the subset. Furthermore changes in adjacent subsetswhich occur as a consequence of the change in the superset arepreferably added to the subset being sent. Thus the subset being sentpreferably comprises an additional data element, originally associatedwith another subset, if the change was e.g. a deletion of a data elementin the superset.

The memory in the computer system may further comprise a second supersetof sorted data elements; the data elements in the second supersetpreferably comprise one or more of the data elements from the firstsuperset.

Thus two supersets may be used for extracting and sending data to theclients. The second superset is preferably treated the same way as thefirst superset. However since the second superset may have data elementssorted in a different way changes may occur at other positions in thesuperset.

In a second aspect of the invention, the above and other objects arefulfilled by an electronic exchange comprising the computer system asmentioned above.

The computer system may thus be an integrated module in an electronicexchange. It can also be a stand alone module that can be soldseparately as an information dissemination system.

In a third aspect of the invention, the above and other objects arefulfilled by a method implemented on a computer system for sending datasets to a plurality of clients via a network, the method comprising thesteps of:

-   -   extracting from a superset of sorted data elements, a first        subset and a second subset, the second subset being different        from the first subset,    -   selecting a first and a second group of clients, the second        group of clients being a sub set of the first group of clients,        and    -   sending, the first subset to the first group of selected        clients, and sending the second subset to the second group of        selected clients.

The above method has the advantage that it provides a solution thatmakes it possible to disseminate data in a more efficient way. Themethod makes it possible to send data without affecting bandwidth andperformance in the computer system since duplications of messages arepreferably not extracted or sent.

The method may further comprise the step of selecting groups of clients,based on at least one of the following input:

-   -   a data rate of a clients connection to the network, and    -   a subscription associated to a client.

In this way the dissemination of data can be done in a smart way sincethe method makes it possible to sense a data rate on a connection to aclient. For example this may be done by measuring the data rate directlyon the connection, or based on information from the client, anothersolution could be to receive information from a message bus and soforth. Thus the selector may select a group based on a combination ofdata rate and subscription or based on one of them alone.

The method may further comprise the step of arranging the data in thesubsets according to at least one of the following arrangements:

-   -   data structured as delta-changes of at least a part of the data        elements of at least a part of the superset,    -   data structured as the data elements of at least a part of the        superset.

By arranging the data in the subsets valuable bandwidth can be saved. Ifonly one part of a data element in the superset has changed it may bebetter to only send the delta change of that part in order to update thedata set at the client computer. However in other situations it may bemore efficient to send one or more data elements to replace obsoletedata elements at the client. In these cases a snapshot of the supersetof data can be sent and the amount of bandwidth to be used becomeseasier to calculate and predict.

In another embodiment the method may comprise the step of associatingthe subscription with a selected client based on at least one of thefollowing input:

-   -   the data rate of the connection to the client,    -   a counter performance from the client, and    -   client rights.

The extracting step, preferably extracts the subsets from the supersetof data elements upon at least one of the following events:

-   -   a change in the superset,    -   at certain time intervals decided by a holdback timer,        and by use of the communicator, sending the subsets to selected        group of clients.

When and how the subset is extracted may be chosen depending on thespecific situation. For example if changes in the superset do not occurso often, it may be more efficient to extract data elements from thesuperset upon a change in the superset. However if changes continuouslyoccurs at relatively high speed the solution may be to extract dataelements (snapshot) at certain time intervals decided by a holdbacktimer. In these cases it is easier to predict bandwidth utilization inthe system and it may be more bandwidth efficient to do it this way.

Thus the system may chose to send a snapshot of a part of the dataset.When using snapshots a holdback timer may be used in order to decidewhen a snapshot should be sent. For example a snapshot of the fouruppermost data element is sent every second. The size of this messagewill always be the same (e.g. 4 bytes, 1 bytes per element). Anothersolution would be to send a data element for each update when it occurs.If during this second 100 updates occur this would result in 100 dataelements a 1 byte, being sent. Thus 100 bytes is sent during theinterval of one second. From a bandwidth perspective it may thus bebetter to use the snapshot and timer technique in this situation.

As described earlier in this document, data elements may be extracted bya combination of the two techniques, upon a change and upon timeintervals.

The method may further comprise the following step:

-   -   detecting at least one location of a change in the superset, and        based on the location sending a subset associated with the        location to clients subscribing for the subset.

This has the advantage that only the subset comprising the change in thesuperset will be extracted and sent to a client. In this way bandwidthand other system resources such as processor time will be saved.

The method may also comprise the following step:

-   -   adding an additional data element to the subset being sent to        the selected client if the change was a deletion of a data        element in the superset.

This has the advantage that processing of the data elements can be doneat the client computer since a deletion/removal of a data element in afirst subset means that the first data element in the subset followingthe first subset has to be moved to the first subset.

Preferably the subsets of data comprise data relating to at least one ofthe following data:

-   -   market by order data,    -   market by level data/market by price data.

As mentioned earlier in this document the above data may be used whereit is hard for an external application to sort the incoming data. Bysending the data already sorted it speeds up the processing of thereceived data for a client computer.

In a fourth aspect of the invention, the above and other objects arefulfilled by a client computer for management of sorted data elements,the client computer comprising:

-   -   an interface for receiving an update message, the update message        comprising data relating to sorted data elements,    -   a memory comprising a set of sorted data elements and for        storing the data relating to sorted data elements,    -   a display for displaying a number of the sorted data elements,    -   a message handler for managing the set of sorted data elements        based on the data in the update message.

The above client computer has the advantage that it provides a solutionthat makes it possible to process data received from a computer systemin a more efficient way. Since the sorted data elements in the memoryneeds to be updated at certain time intervals so that a user of thecomputer can see what is happening at a central computer system such asin an order book, the client computer comprises a message handler thattreats the data elements based on the information received in the updatemessage. Thus if the client computer receives an update messagecomprising delta changes it adds the delta changes to the data elementsstored in the memory. If the client computer receives an update messagecomprising data elements it may replace the obsolete data elements inthe memory in order to provide an accurate and correct data to a user ofthe client computer.

The client computer may further comprise a management module forexecuting implicit operations on the stored set of sorted data elementsbased on the data in the update message. The implicit operationspreferably relates to at least one of the following operations: pushoperation, pop operation, delete operation and so forth.

The implicit operations are executed by the client computer on the localdataset stored in the memory of the client computer. The implicitoperation is based on the content of the update message in order tocreate a sorted dataset at the client computer.

The data in the update message may be chosen from the group of datacomprising:

-   -   add data, for adding a new data element,    -   remove data, for removing a data element, and    -   change data, for changing a data element.

Depending on the data the client computer receives in the update messagethe client computer performs certain operations as described above.

In a fifth embodiment of the invention, the above and other objects arefulfilled by a computer program product according to any of the previousdescribed embodiment, the computer program product being stored on adata carrier.

These and other aspects of the invention will be apparent from andelucidated with reference to the embodiments described hereinafter.

BRIEF DESCRIPTION OF FIGURES

FIG. 1 illustrates an overview of a computer network, wherein thepresent invention may be used, having different data rates on theconnections between the devices.

FIG. 2 illustrates an embodiment of a superset of data and alsodepicturing three subsets of data.

FIG. 3 illustrates three different supersets of data.

FIG. 4 illustrates an overview of a computer network having differentdata rates on the connections between the devices in the network. Alsodepicturing how the different subsets may be distributed on thedifferent connections.

FIG. 5 illustrates a computer comprising a memory, an extractor, aselector, a communicator, a comparator and an interface.

FIG. 6 illustrates an addition of a data element into a subset of dataat a client computer, and the implicit operation carried out by theclient computer.

FIG. 7 illustrates an addition of a data element into a set of datacomprising two subsets at a client computer and the implicit operationcarried out by the client computer.

FIG. 8 illustrates an addition of a data element into a set of datacomprising three subsets at a client computer and the implicit operationcarried out by the client computer.

FIG. 9 illustrates an update message and a removal of a data elementfrom position 4 of a set of data comprising one subset at a clientcomputer and the implicit operation carried out by the client computer.

FIG. 10 illustrates an update message and a removal of a data elementfrom position 4 of a set of data comprising two subsets at a clientcomputer and the implicit operation carried out by the client computer.

FIG. 11 illustrates an update message and a removal of a data elementfrom a set of data comprising three subsets at a client computer and theimplicit operation carried out by the client computer.

FIG. 12 illustrates an update message for updating a data element in thedifferent subsets. All clients will receive the update message if anupdate is in the first subset, only the client B and C will receive theupdate message if the update is in the second subset and only client Cwill receive the update message if the update is in the third subset.

FIG. 13 illustrates how changes may be done in order to update thesubset/s at the client computer. In this case by sending the dataelements that have changed.

FIG. 14 illustrates how changes may be done in order to update thesubset/s at the client computer. In this case by sending a delta-changeof a data element and a data element.

FIG. 15 illustrates how changes may be done in order to update thesubset/s at the client computer. In this case by sending a snap-shot ofthe superset.

DESCRIPTION OF PREFERRED EMBODIMENTS

In this application some specific terms are used, below follows adescription of these.

MBO—Market By Order—In FIG. 3 this type of message 13 is picturized.This type of message flow contains the order book changes that occur inthe order depth for an instrument. Each change will be represented in amessage by a delta change. The external applications can use thisinformation to build up their order depth for this order book andmaintain a shadow of the real order book. It is possible to say thatonly order changes that occurs on the top X levels shall be distributedand by doing so the external application will have a copy of the orderdepth for those levels.

MBP—Market By Price—This type of message 11 contains information on theprice levels that exists in the market with a summary of the totalvolume on each level. It is possible to say that only the top Y pricelevels will be distributed.

A MBO example will be used as support for the description, in order tosimplify the understanding of the invention. In this example the systemis configured to distribute three different levels of MBO, in order tosupport different type of bandwidth users. However the invention isuseful with any type of sorted lists and not only with MBO or MBPmessage information.

The invention will now be explained in detail with reference to thefigures.

FIG. 1 illustrates a central computer system having front-end computers1, a back-end system 2 and gateways or routers 3. Between the differentdevices there is connections illustrated by lines 4 having differentthickness. The thickness illustrates the bandwidth (data rate). A thickline has a high data rate and a thin line has low data rate. Three ofthe front end computers in FIG. 1 have a letter on the screen, thisillustrates that it is a client computer belonging to user A, B and C.

FIG. 2 illustrates a superset of data 7 which in this example is dividedinto three subsets of data 8, 9, 10. The superset can be divided intomore subsets each comprising less data elements or it can be dividedinto less subsets comprising more data elements. How many subsets thatrepresent the superset is preferably decided based on each specificsituation and system wherein the invention is going to be used. In thisdocument however we have chosen to divide the superset into threesubsets in order to make the invention easier to understand. The firstsubset 8 comprising five data elements (1-5), the second subset 9comprising 15 data elements (6-20), the third subset comprising the dataelements >20, e.g. 21-30.

FIG. 3 is an illustration of three supersets comprising data representedin three different ways. Price depth (MBP) 11, price statistics 12 andorder depth (MBO) 13.

FIG. 4 illustrates a somewhat different system compared to the system inFIG. 1. The figure also illustrates what subsets of the superset thatmay be sent over different connections. The subset being associated withthe connections of different data rates. For example the thickest dataconnection, connecting the central system 2 with a client A, is able totransmit the whole superset 16, the slower data connection is able totransmit the first and second subset 17 to client B, and the slowestdata connection is able to transmit the first subset 18 to client C. Inthis example the central system 2 comprises two supersets of data,however the central system may comprise 1 or more data elements, such as3, 4, 5 and up to 15 or more such as 100, 200, 500. This is dependent onthe application wherein the invention is being used.

FIG. 5 illustrates an electronic device comprising the computer system19 according to the invention. The computer system 19, comprising amemory 20, an extractor 21, a selector 22, a communicator 23, acomparator 24 and an interface 25. The memory 20 comprises two supersetsand an area for storing subscriptions.

In the following the invention will be described in detail withreference to the figures. The details of how the subsets may be sent tothe client computers and how a client computer preferably manages thedata received in the update messages sent from the central system, willbe explained.

In the example provided in this document there exist three clients; A, Band C having different data rates on the connections as explained below.

Client A has a limited connection against the central system with poorbandwidth. He can therefore not subscribe for the entire order depth.Therefore he only wants to subscribe for the top 5 orders in the depth.

Client B is a standard member client who is trading on one of the bigfirms 5 and has normal connection to the central system 2. He wants tosubscribe for the top 20 orders.

Client C is a high standard client that is connected to a centralgateway 3 and has a high performance connection. He wants to subscribefor the entire order depth.

Below follows an example of how the invention preferably works whendisseminating information from a superset 7 of data.

-   -   Client A sets up a subscription on a broadcast of the first        subset 8.    -   Client B sets up a subscription on a broadcast first 8 and        second subset 9.    -   Client C sets up a subscription on a broadcast first 8, second 9        and third subset 10.

Either the clients themselves sets up a subscription. However this mayalso be done centrally at the central computer system 2, by a systemadministrator or automatically by the system itself based on a number ofpredetermined parameters such as data rate and so forth.

The central system 2 will now have a method of distributing order bookchanges so that it supports different type of bandwidth clients. Thetrick of this is to distribute this information without the need ofduplicating messages for different type of clients.

The orderbook 7 contains 30 orders on the offer side. The first subset 8has been sent out for the top 5 orders. The second subset 9 has beensent out for the orders on position 6 to 20 and the third subset 10 hasbeen sent out for the remaining levels.

Client A will therefore have a correct picture of the top 5 orders.Client B will have correct picture of the top 20 orders and finallyclient C will have a full order depth picture. See FIG. 6, 7 and 8 wherethe view of each client's picture is illustrated. This may also refer tohow the information is stored in the memory at each client computer.Thus not only how it is seen on the computer screens.

The following section will explain how an add order shall be treatedwithin the system to support this type of solution. It is based on asolution where order book changes are distributed as delta changes. Theexample is illustrated in FIG. 6 for client A, FIG. 7 for client B andFIG. 8 for client C.

Add

Level 1-5—A new order with a ranking position between 1 and 5.

The system according to the invention will generate the first subset Addorder 26 broadcast. All clients will receive this broadcast 26.

In FIG. 6, client A will insert the order 26 and update the rankingposition for all other orders that are affected by this change. Theorder that had position 5 and now has position 6 will be removed by thefront-end application since the client no longer will receive any orderchanges for this order since he doesn't subscribe for the second subset9 message.

In FIG. 7, client B will insert the order 26 and update the rankingposition for all other orders that are affected by this change. Theorder that had position 20 and now has position 21 is preferably removedby the front-end application since the client no longer will receive anyorder changes for this order since he doesn't subscribe for the thirdsubset 10 message.

In FIG. 8, client C will insert the order 26 and update the rankingposition for all other orders that are affected by this change. Thefront-end application does not need to delete any order since he has afull order-depth view by subscribing for all three broadcasts.

The following examples of sending a subset add order message for thesecond and third subset is not picturized in the figures. However thesame method applies as described in the example above.

Level 6-20—A new order with a ranking position between 6 and 20.

The system according to the invention will generate the second subsetAdd order broadcast. Only Client B and Client C will receive thisbroadcast. Client A will not receive this message and his networkconnection against the central system will therefore not be affected bythis change.

Client B will insert the order and update the ranking position for allother orders that are affected by this change. The order that hadposition 20 and now has position 21 will be removed by the front-endapplication since the client no longer will receive any order changesfor this order since he doesn't subscribe for the third subset 10message.

Client C will insert the order and update the ranking position for allother orders that are affected by this change. The front-end applicationdoes not need to delete any order since he has a full order depth viewby subscribing for all three broadcasts.

Level 21->—A new order with a ranking position >21.

The system according to the invention will generate the third subset Addorder broadcast. Only Client C will receive this broadcast. Client Cwill insert the order and update the ranking position for all otherorders that are affected by this change. The front-end application doesnot need to delete any order since he has a full order-depth view bysubscribing for all three broadcasts.

Client A and Client B will not receive this message and their networkconnection against the central system will therefore not be affected bythis change.

Remove:

The following example is picturized in the FIGS. 9, 10 and 11, and showshow the data sets are treated when a subset remove order message issent.

Level 1-5—An order with a ranking position X between 1 and 5 is removed.

The system according to the invention will generate the first subsetremove order broadcast 27. All clients will receive this broadcast 27.The broadcast 27 preferably contains 2 items. One remove on position Xand one add on position 5. The Add on position 5 will contain the orderthat moved from position 6 to 5 as a result of the deleted order. Thesystem will also generate a second subset add order 28 on position 20for the order that moved from position 21 to 20. Another way of handlingthis would be to have an extra add record in the first subset message 27for position 20.

Client A will remove the order on position X and improve the rankingposition for all other orders that are affected by this change. Theorder that had position 4 will get position 3 and so on. Client A willalso use the Add order in the message and insert it to the 5^(th)position. Client A will not receive the second subset order broadcast.

Client B will remove the order on position X and improve the rankingposition for all other orders that are affected by this change. ClientB's application will ignore the order Add on position 5 since he alreadyhas this order in his order depth (via the subscription on the secondsubset 9). However, he may also receive the second subset order 28. Thisbroadcast contains an Add order record on position 20. Client B'sapplication will Add this order to the 20^(th) position.

Client C will remove the order on position X and improve the rankingposition for all other orders that are affected by this change. ClientC's application will ignore the order Add on position 5 since he alreadyhas this order in his order depth (via the subscription on the secondsubset 9). He will also ignore the second subset order broadcast sinceit contains an order that he already has within his depth via hissubscription on third subset 10.

The following examples of sending a subset remove order message for thesecond and third subset is not picturized in the figures. However thesame method applies as described in the example above.

Level 6-20—An order with a ranking position X between 6 and 20 isremoved. The system according to the invention will generate the secondsubset remove order broadcast. Only Client B and Client C will receivethis broadcast. The broadcast will contain 2 items. One remove onposition X and one add on position 20. The Add on position 20 willcontain the order that moved from position 21 to 20 as a result of thedeleted order.

Client A will not receive this message and his network connectionagainst the central system will therefore not be affected by thischange.

Client B will remove the order on position X and improve the rankingposition for all other orders that are affected by this change. Theorder that had position 15 will get position 14 and so on. Client B willalso use the Add order in the message and insert it to the 20^(th)position.

Client C will remove the order on position X and improve the rankingposition for all other orders that are affected by this change. ClientC's application will ignore the order Add on position 20 since healready has this order in his order depth via the subscription on thethird subset.

Level 20—An order with a ranking position X>20 is removed.

The system according to the invention will generate the third subsetremove order broadcast. Client C will receive this broadcast. Thebroadcast will contain one remove item on position X.

Neither Client A nor Client B will receive this message and theirnetwork connections against the central system will therefore not beaffected by this change.

Client C will remove the order on position X and improve the rankingposition for all other orders that are affected by this change.

Update:

Below follows the explanation on how an order update shall be treatedwithin the system to support this type of solution. It is based on asolution where order book changes are distributed as delta changes.

An update occurs on an existing order in the order book. This can happenwhen an order is partly traded or modified without any order bookpriority change. The solution is picturized in the FIG. 12.

Level 1-5—Update that affects an existing order within the top 5 levels.The system according to the invention will generate the first subsetorder change 30 broadcast. All clients will receive this broadcast andupdate their order depth accordingly.

Level 6-20—Update that affects an existing order within the levels 6-20.

The system according to the invention generates the second subset changeorder 30 broadcast. Only Client B and Client C will receive thisbroadcast and update their order depth accordingly, see position 10 inthe figures. Client A will not receive this message and his networkconnection against the central system will therefore not be affected bythis change.

Level 21->—Update that affects an existing order the levels 21 andabove.

The system according to the invention generates the third subset changeorder 30 broadcast. Only Client C will receive this broadcast and updatehis order depth accordingly, see position >21 in FIG. 12 client C.Client A and Client B will not receive this message and their networkconnections against the central system will therefore not be affected bythis change.

The information dissemination method that is described in this documentcan be used for many different types of data. The solution can be usedin all cases where you have a list of items and where there are clientsthat are interested in different parts of the list and you would like todistribute the list in real time in an efficient way without duplicatingany messages.

FIG. 13 illustrates an update or change of two data elements in asubset. In the figure the system sends the delta changes of the two dataelement in the update message in order to replace/change the old dataelements. The two black rectangles represent data structured as the dataelements of at least a part of the superset.

FIG. 14 illustrates an update or change of two data elements in asubset. In the figure the system sends the delta changes of the dataelements represented by the black rectangles. The upper one of the blackrectangles represents data structured as a delta-change of at least apart of a data element of at least a part of a superset.

FIG. 15 illustrates an update or change of two data elements in a subsetwherein a snap shot of the subset or superset is sent in order to updatethe set at the client computer.

In the above description the term “comprising” does not exclude otherelements or steps and “a” or “an” does not exclude a plurality.

Furthermore the terms “include” and “contain” does not exclude otherelements or steps.

1. A computer system for sending data sets to a plurality of clients viaa network, the computer system comprising: a memory comprising asuperset of sorted data elements, an extractor associated with thememory for extracting, from the superset of sorted data, a first subsetof data elements and a second subset of data elements, the second subsetbeing different from the first subset, a selector associated with thememory for selecting a first and a second group of clients, the secondgroup of clients being a subset of the first group of clients, and acommunicator associated with the extractor and selector, for sending thefirst subset to the first group of selected clients, and for sending thesecond subset to the second group of selected clients.
 2. A computersystem according to claim 1, wherein the selector selects a group ofclients based on at least one of the following: a data rate of aclient's connection to the network, a subscription associated to aclient.
 3. A computer system according to claim 1, wherein the supersetof sorted data elements comprises data relating to at least one of thefollowing data: market by order data, market by level data/market byprice data.
 4. A computer system according to claim 1, wherein the dataelements in the subsets of data comprises at least one of the following:data structured as delta-changes of at least a part of the data elementsof at least a part of the superset, data structured as the data elementsof at least a part of the superset.
 5. A computer system according toclaim 1, wherein the memory further comprises an area, accessible by theselector for storing subscriptions associated with clients.
 6. Acomputer system according to claim 5, wherein the subscriptionassociated with a client is based on at least one of the following: thedata rate of the connection to the client, a counter performance fromthe client, and client rights.
 7. A computer system according to claim1, wherein the extractor, extracts a subset of data elements from thesuperset of sorted data elements upon at least one of the followingevents: a change in the superset, at certain time intervals decided by aholdback timer, and by use of the communicator, sending the subsets toselected group of clients.
 8. A computer system according to claim 1,further comprising a comparator associated with the memory, fordetecting at least one location of a change in the superset of sorteddata elements, and based on the location sending a subset associatedwith the location to clients subscribing for the subset.
 9. A computersystem according to claim 8, wherein the subset comprises an additionaldata element if the change was a deletion of a data element in thesuperset.
 10. A computer system according to claim 1, wherein the memoryfurther comprises a second superset of sorted data elements, the dataelements in the second superset comprises one or more of the dataelements from the first superset.
 11. An electronic exchange comprisingthe computer system according claim
 1. 12. A method implemented on acomputer system for sending data sets to a plurality of clients via anetwork, the method comprising the steps of: extracting from a supersetof sorted data elements, a first subset and a second subset, the secondsubset being different from the first subset, selecting a first and asecond group of clients, the second group of clients being a sub set ofthe first group of clients, and sending, the first subset to the firstgroup of selected clients, and sending the second subset to the secondgroup of selected clients.
 13. A method according to claim 12, furthercomprising the step of selecting groups of clients, based on at leastone of the following input: a data rate of a clients connection to thenetwork, a subscription associated to a client.
 14. A method accordingto claim 12, further comprising the step of arranging the data in thesubsets according to at least one of the following arrangements: datastructured as delta-changes of at least a part of the data elements ofat least a part of the superset, data structured as the data elements ofat least a part of the superset.
 15. A method according to claim 13, themethod further comprises the step of associating the subscription with aselected client based on at least one of the following input: the datarate of the connection to the client, a counter performance from theclient, and client rights.
 16. A method according to claim 12, whereinthe extracting step, extracts the subsets from the superset of dataelements upon at least one of the following events: a change in thesuperset, at certain time intervals decided by a holdback timer, and byuse of the communicator, sending the subsets to selected group ofclients.
 17. A method according to claim 12, further comprising thefollowing step: detecting at least one location of a change in thesuperset, and based on the location sending a subset associated with thelocation to clients subscribing for the subset.
 18. A method accordingto claim 17, further comprising the following step: adding an additionaldata element to the subset being sent to the selected client if thechange was a deletion of a data element in the superset.
 19. A methodaccording to claim 12, wherein the subsets of data comprises datarelating to at least one of the following data: market by order data,market by level data/market by price data.
 20. A client computer formanagement of sorted data elements, the client computer comprising: aninterface for receiving an update message, the update message comprisingdata relating to sorted data elements, a memory comprising a set ofsorted data elements and for storing the data relating to sorted dataelements, a display for displaying a number of the sorted data elements,a message handler for managing the set of sorted data elements based onthe data in the update message.
 21. A client computer according to claim20, the client computer further comprising a management module forexecuting implicit operations on the stored set of sorted data elementsbased on the data in the update message.
 22. A client computer accordingto claim 21, wherein the implicit operations relates to at least one ofthe following operations: push operation, pop operation, deleteoperation.
 23. A client computer according to claim 20, wherein the datain the update message is chosen from the group of data comprising: adddata, for adding a new data element, remove data, for removing a dataelement, and change data, for changing a data element.
 24. A computerprogram product according to claim 12, the computer program productbeing stored on a data carrier.